লারাভেল সেশন (Laravel Session)

Web Development - লারাভেল (Laravel) - লারাভেল ব্যাসিক (Laravel Basic) |
4
4

HTTP সেশন (HTTP Session)

HTTP সেশন একটি প্রক্রিয়া যা ব্যবহারকারীদের জন্য স্টেটফুল অ্যাপ্লিকেশন তৈরি করতে সাহায্য করে। এটি ব্যবহারকারীর তথ্য সংরক্ষণ করে, যাতে পরবর্তী রিকোয়েস্টে সেই তথ্য ব্যবহার করা যায়।

কনফিগারেশন

Laravel-এ সেশন কনফিগারেশন config/session.php ফাইলে করা হয়। এখানে আপনি সেশন ড্রাইভার, লাইফটাইম এবং অন্যান্য সেটিংস কাস্টমাইজ করতে পারবেন।

'driver' => env('SESSION_DRIVER', 'file'),
'path' => '/',
'lifetime' => 120,

ড্রাইভার প্রPrerequisites

Laravel বিভিন্ন সেশন ড্রাইভার সমর্থন করে, যেমন:

  • File: ডিফল্ট ড্রাইভার, যা সেশন তথ্য ফাইল সিস্টেমে সংরক্ষণ করে।
  • Database: সেশন তথ্য ডেটাবেসে সংরক্ষণ করে।
  • Redis: একটি ইন-মেমরি ডেটা স্টোর হিসেবে সেশন তথ্য সংরক্ষণ করে।
  • Memcached: একটি দ্রুত ইন-মেমরি কেশিং সিস্টেম।

ড্রাইভার ব্যবহার করতে চাইলে সংশ্লিষ্ট ড্রাইভারটির কনফিগারেশন ঠিকমত করতে হবে।

সেশনের সঙ্গে যোগাযোগ করা

তথ্য পুনরুদ্ধার করা

সেশনে সংরক্ষিত তথ্য পুনরুদ্ধার করতে session() ফাংশন বা Session ফ্যাসেড ব্যবহার করা হয়:

$value = session('key');
// অথবা
$value = Session::get('key');

তথ্য সংরক্ষণ করা

তথ্য সেশনে সংরক্ষণ করতে:

session(['key' => 'value']);
// অথবা
Session::put('key', 'value');

ফ্ল্যাশ ডেটা

ফ্ল্যাশ ডেটা ব্যবহার করা হয় যখন আপনি কিছু তথ্য একবারের জন্য সেশন মধ্যে রাখতে চান। এটি সাধারণত রিডাইরেক্টের পর ব্যবহৃত হয়:

session()->flash('status', 'Task was successful!');
// অথবা
Session::flash('status', 'Task was successful!');

তথ্য মুছে ফেলা

সেশন থেকে তথ্য মুছতে:

session()->forget('key');
// অথবা
Session::forget('key');

সেশন আইডি পুনর্জন্ম

যদি আপনি সেশনের আইডি পরিবর্তন করতে চান (যেমন সেশন হাইজ্যাকিং প্রতিরোধে), আপনি regenerate মেথড ব্যবহার করতে পারেন:

$request->session()->regenerate();

সেশন ব্লকিং

কিছু ক্ষেত্রে আপনি চাইতে পারেন যে ব্যবহারকারীরা একসাথে একাধিক সেশন ব্যবহার না করতে পারে। এটি সেশন ব্লকিং নামকরণ করা হয়, যা কাস্টম ইমপ্লিমেন্টেশন দ্বারা করা যায়।

কাস্টম সেশন ড্রাইভার যুক্ত করা

ড্রাইভার ইমপ্লিমেন্ট করা

আপনার কাস্টম সেশন ড্রাইভার তৈরি করতে হলে, প্রথমে একটি ক্লাস তৈরি করুন যা SessionHandlerInterface ইন্টারফেস ইমপ্লিমেন্ট করে।

use SessionHandlerInterface;

class CustomSessionHandler implements SessionHandlerInterface {
    // আপনার কাস্টম মেথডগুলি এখানে
}

ড্রাইভার নিবন্ধন করা

আপনার কাস্টম ড্রাইভারটি নিবন্ধন করতে AppServiceProvider ক্লাসের boot মেথডে Session::extend ব্যবহার করুন:

use Illuminate\Support\Facades\Session;

public function boot()
{
    Session::extend('custom', function ($app) {
        return new CustomSessionHandler();
    });
}

উপসংহার

HTTP সেশন ব্যবহার করে আপনি ব্যবহারকারীর তথ্য সংরক্ষণ ও পরিচালনা করতে পারেন, যা স্টেটফুল অ্যাপ্লিকেশন তৈরিতে সহায়ক। লারাভেলের সেশন ব্যবস্থাপনা ব্যবহার করে আপনি সহজেই সেশন তথ্য পুনরুদ্ধার, সংরক্ষণ এবং মুছে ফেলতে পারেন।

Content added By
Promotion